package com.humanminoritygame.web;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Component;

@Component
public class LoginFilter implements Filter {

  @Override
  public void destroy() {
    // TODO Auto-generated method stub
  }

  @Override
  public void doFilter(ServletRequest req, ServletResponse res,
      FilterChain chain) throws IOException, ServletException {

    HttpServletRequest request = (HttpServletRequest)req;
    HttpServletResponse response = (HttpServletResponse)res;

    if(request.getRequestURI().contains("servlets/index/confirm") ||
        request.getRequestURI().contains("servlets/index/forgotPass") ||
        request.getRequestURI().contains("servlets/index/resendConfirmation") ||
        request.getRequestURI().contains("servlets/index/confirmationMail") ||
        request.getRequestURI().contains("servlets/index/rememberPassword") ||
       request.getRequestURI().contains("servlets/index/help")){
      chain.doFilter(req, res);
      return;
    }

    //System.out.println("requesturi = " + request.getRequestURI());
    if(!request.getRequestURI().contains("servlets/index/signup")
        && !request.getRequestURI().contains("servlets/index/login")
        && !request.getRequestURI().contains("servlets/index/index")){
      HttpSession session = request.getSession();
      if(session==null || session.getAttribute("user")==null){
        // TODO
        response.sendRedirect("../index/index");
        return;
      }
    }

    if(request.getRequestURI().contains("servlets/index/index")){
      HttpSession session = request.getSession();
      if(session!=null && session.getAttribute("user")!=null){
          response.sendRedirect("../index/welcome");
          return;
      }
    }

    chain.doFilter(req, res);
    return;
  }

  @Override
  public void init(FilterConfig arg0) throws ServletException {
    // TODO Auto-generated method stub
  }

}
